硕博云上工作坊第五期 | 如何充分利用学术会议
在这个特殊的春季学期,
在线教学如火如荼的同时,
硕博工作坊与你相约云上,
一起聊聊科研、就业的那些事儿。
非常欢迎想要报名
2021级硕博连读项目的同学参加
扫描图中二维码即可报名
李栋栋 2015级财务系博士
读博期间曾前往香港理工大学会计与金融学院担任全职研究助理。研究兴趣为公司财务与资本市场,目前已在《管理世界》、《南开管理评论》、《经济理论与经济管理》等国内高水平期刊发表学术论文。
世界那么大,快来跟着栋栋学长学习如何充分利用学术会议吧~
4月11日下午,硕博“云上工作坊”第四期请来了2014级统计系的博士何勇学长,为62多名硕博同学分享了使用R语言进行科研数据分析的相关经验和技巧。何学长主要从R语言介绍、R语言数据类型与计算、R语言作图、R语言数据分析和编程基础和R语言应用实例几个方面与同学们进行了分享。
R语言介绍
R语言是一个免费开源的用于统计计算和作图的语言和软件环境,支持多种操作系统,并且可以调用Python、MATLAB、C++等多种多种语言的程序。R语言具有开放的源代码和强大的社区供各位使用者进行项目的共享和编程问题的交流与学习,其功能对于管理学院/商学院中各个专业同学的科研数据分析任务来说都是足够的。R语言默认的集成开发环境为RGui,但RStudio可以为用户提供更广泛的功能,使用起来更方便,界面如下图:
R语言的官方网页(https://www.r-project.org/)上有多种多样的R包(Package)可以供广大用户搜索、下载和使用,内容几乎覆盖整个统计领域的前沿算法。针对不同学科领域的数据(例如金融数据、生物基因序列数据、脑图像数据)都有专门的包可以直接使用。该网站上还可以下载最新版本的R安装文件、帮助文档、每个R包对应的说明文档和源代码。
常用扩展包:
经济金融:zoo, timeDate, quantmod, parma, alphavantager
生物医疗:BGData, getTBinR, ICDS, UCSCXenaTools, NetworkToolbox
数据可视化: ggplot2, lattice, rgl, r2d3
机器学习:nnet, rpart, tree, party, lars, boost, e1071, BayesTree, gafit, arules
R和Python的对比
从功能上看,Python支持更多面向对象的复杂编程,但R语言最初是由统计学家开发的,是专门为数据统计和分析服务的。细节上,Python中第一个元素的索引为0,而在R中为1。总的来说,两者都是解释型语言,代码数量比一般的编译型语言更少,都非常适合初学者上手。
R语言数据类型与计算
R中常用的对象有向量、矩阵、向量框、列表、字符串等
创建对象:
a1 <- c(1,2,3,4,5)
生成向量
a2 = c(2,4,6,8,10)
生成向量
b1 = matrix(1:16,4,4)
生成矩阵
A = data.frame(a1,a2,a3)
生成向量框
B = list(vector=a1,a2,a3,matrix=b1)
生成列表
提取特定位置上的数值:
a2[3]
取向量a2中第3个元素
b1[2,2]
取矩阵b1中第2行第2列的元素
A$a2[3]
取向量框A中a3向量中的第3个元素
B$matrix[2,2]
取列表B中矩阵的第2行第2列的元素
数据的生成:
向量的生成一般使用c()和seq()方法 ,其中seq()常用用法:
seq(from,to)
生成从from到to间隔为1的序列
seq(from,to,by=)
生成从from到to间隔为by的序列
重复某个数值可使用函数rep():
rep(vector,n)
重复vector n次
矩阵的生成为
matrix(data,n,p) 生成一个n*p的矩阵,前提是data中必须包含n*p个值。
此外生成随机数可以使用R内建的各种函数来进行,R语言支持向量、矩阵等数据类型的常用计算。
R语言作图
R具有强大的作图功能,常用的作图方法如下:
作图函数中有相当一部分函数的选项(参数)设置是一样的,下面是一些主要的共同选项及默认值:
R语言数据分析和编程基础
R语言中的扩展包stats包括了一系列基本的统计分析函数:经典的假设检验,线性模型(包括最小二乘法回归,广义线性模型,方差分析),统计分布,汇总统计,层次聚类,时间序列分析,非线性最小二乘法和多元分析。
在stats包里面线性回归分析函数是lm。我们采用R分发的数据集women(包含15名女性的身高和体重数据)来示范这个函数:
library(stats)
data(women)
lm.wm = lm(weight~height+non,data=women)
函数lm的主要参数是一个公式,公式左边是响应变量,右边是预测变量,中间以~连接。前面命令运行的结果不会在屏幕中显示,因为他们都被赋值给对象lm.wm,我们可以输入lm.wm来展示这些结果的一个简单总结,函数summary可以显示更多的细节(包括统计检验的结果)
lm.wm
summary(lm.wm)
结果如下图:
和其他编程语言一样,R也支持条件分支和循环语句,并支持用户自定义函数。其中比较有用的是R提供了批量处理的apply族函数,可以循环遍历某个集合内的所有或部分元素,避免了循环中再套循环的操作以达到简化的效果。
接下来学长结合自己使用R语言进行脑图像数据分析的项目给同学们分享了一些实用的tips:
1.写代码注重规范性、易读性和美观性:变量的命名尽量和实际含义相对应,代码最好逐行注释,多使用换行和空格使代码看起来不拥挤。
2.开始自己的项目时应该首先检索是否已经有相关的R包,如果有的话可以直接下载使用
3.可以将自己写的代码封装成R包上传到官方网站或将自己的Project上传到Github等平台,一方面可以增加自己被引用的机会,另一方面也可以督促自己去写好代码。
4.对于数据获取,可以联系兴趣领域的学者开展合作
最后,学长提出统计软件的掌握是一个在实战中逐渐熟悉和提升的过程,鼓励感兴趣的同学可以在课后多看、多试、多用,以及多和同行交流。
点“阅读原文”立即报名